package com.buli.blmall.admin.core.listener;

import com.buli.blmall.admin.system.service.SysLoginHistoryService;
import com.buli.blmall.admin.system.vo.SysLoginHistoryVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.event.EventListener;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;

/**
 * @author xiang.gao
 * @date 2024/12/24 11:20
 */
@Slf4j
@Component
@AllArgsConstructor
public class LoginListener {

    private final SysLoginHistoryService sysLoginHistoryService;

    @Async
    @EventListener
    public void onApplicationEvent(LoginEventData eventData) {
        log.info("登录事件监听器监听到事件：{}", eventData);
        SysLoginHistoryVO sysLoginHistory = new SysLoginHistoryVO();
        sysLoginHistory.setLoginType(eventData.getLoginType());
        sysLoginHistory.setPrincipal(eventData.getPrincipal());
        sysLoginHistory.setLoginTime(eventData.getLoginTime());
        sysLoginHistory.setStatus(eventData.getStatus());
        sysLoginHistory.setIpAddress(eventData.getLoginIp());
        sysLoginHistory.setDeviceInfo(eventData.getDeviceInfo());
        sysLoginHistory.setToken(eventData.getToken());
        sysLoginHistoryService.add(sysLoginHistory);
    }

}
